<meta charset="utf-8"/>
<?php
//                       变量传值
//值传递：是指一个变量的数据值（数据内容）拷贝一份，
//        然后赋值给另一个变量，如下：
              $v1=1;
              $v2=$v1;      //此时发生传值问题
              $v3=$v1+3;    //此时没有发送传值问题

              echo $v1.'<br/>';
              echo $v2.'<br/>';
              echo $v3.'<br/>';
    //$v1先赋值给$v2,$v2的值为1后，$v1再做++运算，结果为2
              $v1++;
              echo "v1=$v1,v2=$v2";   //输出v1=2,v2=1
    //赋值完之后，这两个变量就没有关系了（相互独立），如下：
              echo "<br/><br/>";
              $v2++;
              echo "v1=$v1,v2=$v2";   //输出v1=2,v2=2
           echo "<br><br><br><br>";
//引用传值:是指将一个变量的引用关系拷贝一份，然后赋值给另外
//         一个变量，即另一个变量也同样油该关系决定了指向某
//         个数据,如下：

           $v10=10;
           $v20=&$v10;  //此时发生传值问题，注意符号：&
           $v20++;
//赋值（传值）完之后，两个变量指向同一个数据
//也就是说，对变量的操作就是对数据的操作
//所以，对变量v10的操作，改变的数据，也体现为v2也发生了改变

       echo "v10=$v10,v20=$v20";   //结果：v10=11,v20=11
       echo "<br><br>";
//另外，在这种引用传值的情况下，unset一个变量，则另一个跟它有
//关（指向同样数据的关系）的变量， 并不受影响，如下：           
         unset($v20);
         echo "v10=$v10,v20=$v20";  //结果：v10=11,v20=


//可变变量：
       $v1="abc";//这是一个字符串变量，其内容是字符串“abc”
       $abc=10;  //这是一个普通变量，其内容是数字10
       echo $$v1;//此时就是所谓的“可变变量”

     echo "<br><br><br><br>";
/*     怎么理解：
           1、凡是$符号出现，就会有可能理解为一个变量
           2、这里第一个“$”出现了，则php就试图将其解释
              为一个变量，变量名是v1
           3、我们知道，$v1的值是"abc"
           4、那么，第一个“$”符号后面的变量名，就得到“abc”
           5、即：echo试图输出的变量是$abc,结果是数字10
*/

//预定义变量：
//   $_GET变量（数组）：
//   get这个词，常常出现在这里：<form action="abc.php" method="get">---</form>
//   这叫做  “表单以get方式提交数据”
//   则$_GET这个预定义变量数组，就是以这种方式提交的所有数据的集合（数组）
//   对应来说，也可以以post方式提交数据
//   注意：get这个词，似乎没有中文翻译
//   实际上，在网页中，以get方式提交的数据有多种形式

?>
<!--形式一-->

<!--这里是html代码了，所以php要结束  加上 ?> -->
         <form action="abc.php" method="get">
            项目1：<input type="text" name="uName"/>
            项目2：<input type="password" name="uPswd"/>
            <input type="submit" value="提交">
         </form>
<!--
其作用是：用户填写表单数据，并提交后，会将数据发送（提交）
给页面abc.php，其实也可以理解为“打开”该网页abc.php,还可以
理解为“请求”该网页abc.php
-->


<!--形式二-->
          <a href="2.php" uName="test1"&uPswd="123">
                 这是一段文本。。。。。。。。。。
          </a>
<!--
其作用是：用户点击链接后，会将数据发送（提交）给页面abc.php,
其实也可以理解为“打开”该网页（abc.php）,还可以理解为“请求”该
网页（abc.php）,这种请求也是get请求
-->
         

<!--形式三-->
       <script>
          // location是一个对象，href是他的一个方法
          // "baidu.com?uName=test1&uPswd=123" 这是一个字符串
          // 跟php里面 $str = "abc"; 一样的，所以外围要用”“包起来
          Location.href="baidu.com?uName=test1&uPswd=123";
                // 香菇  蓝瘦。。。。  这个是不合法的js代码
//利用location对象的属性href

       </script>
<!--
其作用是：当该语句执行的时候，会将数据发送（提交）给页面abc.php,
其实也可以理解为“打开”该网页（abc.php）,还可以理解为“请求”该
网页（abc.php）,这种请求也是get请求
-->


<!--形式四-->
       <script>
          // location是一个对象，href是他的一个方法
          // "baidu.com?uName=test1&uPswd=123" 这是一个字符串
          // 跟php里面 $str = "abc"; 一样的，所以外围要用”“包起来
          Location.assign("baidu.com?uName=test1&uPswd=123");
                // 香菇  蓝瘦。。。。  这个是不合法的js代码
//利用location对象的方法assign()

       </script>
<!--
其作用是：当该语句执行的时候，会将数据发送（提交）给页面abc.php,
其实也可以理解为“打开”该网页（abc.php）,还可以理解为“请求”该
网页（abc.php）,这种请求也是get请求
-->
    

<?php
//获取（脚本三、四）数据

        $V1=$_GET['uName'];//单引号也可以用双引号，本质是一
                           //个字符串，其实是数组的键名

        $v2=$_GET['uPswd'];//该键名必须跟提交的时候的名字
                           //完全一致

        echo "v1=$v1,v2=$v2";
        echo "<pre>";
        var_dump($_GET);//var_dump()用于输出一个变量的“最完
                        //整信息”（包括变量名、变量数据值、
                        //变量长度）
                        //这里试图输出$_GET这个“数组”
        echo "</pre>";
?>